// 配置axios的基地址
axios.defaults.baseURL = ' https://hmajax.itheima.net'
// 测试基地址
// axios({
//     url:'/api/city'
// })
// .then(res=>{
//     console.log(res);
// })
//  开发吐司函数
// 封装一个吐司函数
function showToast(message) {
  // 获取层面的弹层模板
  const toast = document.querySelector('.toast')
  // 通过模板实例化一个弹层
  const registerToast = new bootstrap.Toast(toast)
  //  修改弹层内的提示文字
  toast.querySelector('.toast-body').innerText = message
  // 展示弹层
  registerToast.show()
}
// 提交吐司函数
// 提交代码
// 合并分支
// 删除分支
// 创建新分支
// 提交远端仓库
// 封装token方法 校验登录状态
function checklogin() {
  const token = localStorage.getItem('token')
  if (!token) {
    showToast('当前用户不存在')
    setTimeout(() => {
      location.href = './login.html'
    }, 1000)
  }
}
// 拦截器
// 请求拦截 客户端向服务端
axios.interceptors.request.use((config) => {
  // 对config进行包装（添加请求头的token）
 //  获取本地存储的token
  const token = localStorage.getItem('token')
  // 有token才携带，没有就放行
  // headers:携带该参数发送给后端  
  if (token) {
    config.headers.Authorization = token
  }
  return config
}, (err) => {
  //  一般错误是代码出错
  // 返回失败的promise对象
  return Promise.reject(err)
})
// 响应拦截 后端向客户端返回
axios.interceptors.response.use(({data})=>{
  // res才是axios返回的结果，多包装一层，没有用，剥离掉
  // res.data才是接口返回的内容
  // 坑点：▄█▀█● 这里已经解构一层了，之前所有的接口数据都将少一层
  console.log(data);
// 解构data
// 如果有，则说明也不做
return data
},(err)=>{ 
  console.log(err);
  
  // 如果是401 
  if(err.response.status===401){
    //  清空token
    localStorage.removeItem('token')
    // 提示用户
    showToast('登录失效，请重新登录')
    //  响应一秒
    // 跳转页面
    setTimeout(()=>{
      location.href='./login.html'
    },1000)
  }
  // 如果错误 返回失败的promise对象
  return Promise.reject(err)
})